[iOS 10] Custom Keyboard で導入済みキーボードの一覧表示・切替を実現!
はじめに
こんにちは。WWDC会場のあるサンフランシスコにいたのは3ヶ月前。とうとう、iOS 10 が正式公開されました!!
iOS 9 までは、App Extension の Custom Keyboard を使って、独自のキーボードを作る際、一つ大きな問題がありました。
システム標準のキーボード切り替えボタンでは、長押しすることで、他の有効なキーボードをリスト表示できます。さらにその状態で、目的のキーボード名の上で Touch Up することで、ダイレクトにそのキーボードに切り替えることができます。
しかし、残念ながらこれまでは Custom Keyboard 上でそうした機能を実現する手段がありませんでした。
それが、iOS 10 からは可能になります。
本記事では、Custom Keyboard 上で他の有効なキーボードの一覧表示と、それらへのダイレクトな切替を実現する方法をご紹介します。
実装
Custom Keyboard の実装方法については、以下の記事をご参照ください。
[iOS 8] App Extensionでテンション倍増! – Custom Keyboard編 | Developers.IO
これまでのキーボード切替の実装方法
self.nextKeyboardButton.addTarget(self, action: #selector(advanceToNextInputMode), for: UIControlEvents.allTouchEvents)
上記コードでは、nextKeyboardButtonという名前で、キーボード切り替えボタンを作成しています。
これまでは、キーボードを切り替える唯一の手段がadvanceToNextInputModeで、次のキーボードに切り替えることのみが可能でした。
新しい方法
self.nextKeyboardButton.addTarget(self, action: #selector(handleInputModeList(from:with:)), for: .allTouchEvents)
iOS 10からは、handleInputModeList(from:with:)を使うことで、システムキーボードの切替ボタン同様の動きを実現できます。
上記のコードを使うと、nextKeyboardButtonを長押しすることで、有効なキーボード一覧が書かれたフキダシが表示されます。さらに、目的のキーボード名の上で Touch Up することで、ダイレクトそのキーボードに切り替えられます!
さいごに
本記事では、Custom Keyboard 上で他の有効なキーボードの一覧表示と、それらへのダイレクトな切替を実現する方法をご紹介しました。
注:本記事では、Swift 3.0 の記法を採用しています。